package gui.tables;

import java.awt.*;  
import javax.swing.*;  
import javax.swing.table.*;  
import java.util.Vector;

/**
 * Einfache JTable-Variante  
 * @author Dennis Oeguetveren
 */
public class JTableHeaderSimple
{  
	/**Spaltenbezeichner*/
	protected Object[] columnNames = {"String", "String", "String"}; 
	/**Zelleninhalte*/
	protected Object[][] data = null;
	/**basierendes Tablemodel
	 * @see javax.swing.table.DefaultTableModel*/
	protected DefaultTableModel dtm;
	/**basierende JTable*/
	protected JTable table;  
	
	/**
	 * Default-Konstruktor
	 * Konstruiert eine Tabelle mit Standard-Spaltenbezeichnern
	 */
	public JTableHeaderSimple() {
		//dtm = new DefaultTableModel(data,columnNames);  
	    table = new JTable(data,columnNames);    
	}
	
	/**
	 * Konstruiert eine Tabelle mit angegebenen Spaltenbezeichnern
	 * @param colNames	Spaltenbezeichner
	 */
	public JTableHeaderSimple(Object[] colNames) {
		columnNames = new Object[colNames.length];
        for (int i=0; i<colNames.length; i++) {
        	columnNames[i] = colNames[i];
        }
	    table = new JTable(data,columnNames); 
	}
	
	/**
	 * Erstellt ein JPanel mit JScrollPane zur Implementation der Tabelle in ein GUI.
	 * @return	JPanel mit JScrollPane
	 */
	public JPanel buildPanel() {
		//Spalten konfigurieren:
		JScrollPane sp = new JScrollPane(table); 
	    JPanel p = new JPanel(new BorderLayout());
	    p.add(sp);
	    return p;
	}
	
	/**
	 * Liefert die Tabelle
	 * @return	JTable der JTableHeaderSimple
	 */
	public JTable getTable() {
		return table;
	}
	/**
	 * Liefert das TableModel
	 * @return	DefaultTableModel der JTableHeaderSimple
	 */
	public DefaultTableModel getDefaultTableModel() {
		return dtm;
	}
	/**
	 * Liefert den Wert einer Zelle
	 * @return	Zelle aus einem Vector im Vector
	 */
	@SuppressWarnings("unchecked")
	public Object getValueAt(int row, int col) {
		return ((Vector<Object>)dtm.getDataVector().elementAt(row)).elementAt(col);
	}
}   